'use strict'

module.exports=async (c,next)=>{
    //? 做了个兼容操作。既可以从headers的authorization里取token值
    //? 也可以从前端页面url传的token值
    let token=c.headers.authorization || c.query.token;
    if(!token){
        return c.status(403).send('TOKEN NULL');
    }
    let r=c.service.tok.verify(token);

    //! 通过ok判断是否成功，失败，errcode属性表示失败的状态码 
    if(!r.ok){
        //! errcode的值可能是FAILED TIMEOUT ILLEGAL 
        return c.status(403).send(r.errcode)
    }
    //! box 是个空对象  默认存在
    c.box.user=r.data;
    await next();
}